Dev Test Frame Work Demo for MS3 Creates Multi Node GlassFish Cluster on top of Hudson Cluster. Provides Hooks for User Tasks and Ant Tasks. Team This demo is brought to you by Ed Bratt's Dev Test Frame Work Team:
- Harshad Vilekar (Hudson Plugin)
- Mathirajan Manoharan (Ant Tasks)
Demo Script
- Show Hudson Cluster Nodes
- Create a new job, and show - "Add Build Step - Glass Fish Cluster" Menu.
- Launch "GlassFishMultiNodeCluster" job.
- Walk through the GUI of "GlassFishMultiNodeCluster".
- Show Console Output
- Deploy .war file (User Tasks)
- Reload the http URLs to show running app. (Note: Following three links are normally dead)
- instance1
- instance2
- instance3
- Discuss Plugin Features.
- Discuss Ant Targets.
- Show Consolidated Server Logs.
Hudson GlassFish Cluster Plugin Features
- Multi Node GlassFish Cluster
- GlassFish Installation Support
- Cluster Life Cycle Support: Create / Start / Stop the Cluster
- The plugin is accessible to user jobs via "Add Build Step – GlassFish Cluster" Menu.
-
- Cluster Creation Use Cases: (Number of Instances = I, Number of Nodes = N)
- Single Node Cluster:
- Multi Node Cluster, One Instance per Node:
- Multi Node Cluster, Multiple Instances per Node:
-
- Collection and Archival of Server Logs:
- In the Job Configuration, Select: Archive the Artifacts: "logs/**"
- Dynamic Port Allocation:
- User specified preferred base port.
- Dynamically reassign the ports for GF Instances, in case of port conflict.
- Note: No dynamic port allocation for DAS.
- Hooks for Ant Scripts / User Tasks:
- Cluster information passed using cluster config file.
- Multiple Plugin Instances within the same job can share the cluster configuration.
- Configurable Node selection labels.
How does the plugin work
- Some of the Hudson nodes are labeled "GFCluster". They work as plugin's "subslaves".
- When the build is launched:
- The Plugin finds available "N" subslaves.
- Installs GlassFish on each node.
- Starts DAS on the "build" node
- Starts one clustered GF instance on each subslave (this is optional step)
Limitations / Known Issues:
- Hudson core node allocation logic is bypassed when assigning the subslaves. This has various side effects. The fix is planned in
Phase 3 (date TBD).
- The build for "N" instance multinode cluster fails if N subslaves are not available.
- If two or more multi-nodes jobs are running at the same time – they might use the same subslave at the same time.
- Can't use Hudson Master as a build node due to port conflict with DAS.
Hudson Glassfish Ant Targets
- Features
- Ant Targets Provide a means to start, stop, delete, create, kill Glassfish Cluster Instances
- Tightly integrated and triggered though the Hudson Glassfish Plugin
- Provides a platform independent way to manage Glassfish Cluster Instances
- Functionality can be easily extended
- Dependency
Plugin Setup (Hudson Admin)
- Upload GlassFish Plugin (1.03 or later):
Dev Test Frame Work Demo for MS3 Creates Multi Node GlassFish Cluster on top of Hudson Cluster. Provides Hooks for User Tasks and Ant Tasks. Team This demo is brought to you by Ed Bratt's Dev Test Frame Work Team:
- Harshad Vilekar (Hudson Plugin)
- Mathirajan Manoharan (Ant Tasks)
Demo Script
- Show Hudson Cluster Nodes
- Create a new job, and show - "Add Build Step - Glass Fish Cluster" Menu.
- Launch "GlassFishMultiNodeCluster" job.
- Walk through the GUI of "GlassFishMultiNodeCluster".
- Show Console Output
- Deploy .war file (User Tasks)
- Reload the http URLs to show running app. (Note: Following three links are normally dead)
- instance1
- instance2
- instance3
- Discuss Plugin Features.
- Discuss Ant Targets.
- Show Consolidated Server Logs.
Hudson GlassFish Cluster Plugin Features
- Multi Node GlassFish Cluster
- GlassFish Installation Support
- Cluster Life Cycle Support: Create / Start / Stop the Cluster
- The plugin is accessible to user jobs via "Add Build Step – GlassFish Cluster" Menu.
-
- Cluster Creation Use Cases: (Number of Instances = I, Number of Nodes = N)
- Single Node Cluster:
- Multi Node Cluster, One Instance per Node:
- Multi Node Cluster, Multiple Instances per Node:
-
- Collection and Archival of Server Logs:
- In the Job Configuration, Select: Archive the Artifacts: "logs/**"
- Dynamic Port Allocation:
- User specified preferred base port.
- Dynamically reassign the ports for GF Instances, in case of port conflict.
- Note: No dynamic port allocation for DAS.
- Hooks for Ant Scripts / User Tasks:
- Cluster information passed using cluster config file.
- Multiple Plugin Instances within the same job can share the cluster configuration.
- Configurable Node selection labels.
How does the plugin work
- Some of the Hudson nodes are labeled "GFCluster". They work as plugin's "subslaves".
- When the build is launched:
- The Plugin finds available "N" subslaves.
- Installs GlassFish on each node.
- Starts DAS on the "build" node
- Starts one clustered GF instance on each subslave (this is optional step)
Limitations / Known Issues:
- Hudson core node allocation logic is bypassed when assigning the subslaves. This has various side effects. The fix is planned in
Phase 3 (date TBD).
- The build for "N" instance multinode cluster fails if N subslaves are not available.
- If two or more multi-nodes jobs are running at the same time – they might use the same subslave at the same time.
- Can't use Hudson Master as a build node due to port conflict with DAS.
Hudson Glassfish Ant Targets
- Features
- Ant Targets Provide a means to start, stop, delete, create, kill Glassfish Cluster Instances
- Tightly integrated and triggered though the Hudson Glassfish Plugin
- Provides a platform independent way to manage Glassfish Cluster Instances
- Functionality can be easily extended
- Dependency
Plugin Setup (Hudson Admin)
- Upload GlassFish Plugin glassfish.hpi (1.03 or later):
- Install Port Allocator Plugin version 1.5
- Install cygpath plugin version 1.3
- Restart Hudson (The plugin is built with Hudson version 1.371)
- Add the label "glassfish-cluster" to selected Hudson nodes. This marks the node as "plugin subslave". Make sure these nodes are online.
- Set Number Of Executors on the Master node to "0".
More Information:
- /net/icon.red.iplanet.com/export7/gf_hudson_plugin/target/latest/glassfish.hpi
- Install Port Allocator Plugin version 1.5
- Install cygpath pluin version 1.3
- Restart Hudson (The plugin is built with Hudson version 1.371)
- Add the label "glassfish-cluster" to selected Hudson nodes. This marks the node as "plugin subslave". Make sure these nodes are online.
- Set Number Of Executors on the Master node to "0".
|